package cpsobras.util;

import cpsobras.cargo.CargoDAO;
import cpsobras.cargo.CargoDAOImp;
import cpsobras.cliente.PFisica.PFisicaDAO;
import cpsobras.cliente.PFisica.PFisicaDAOImp;
import cpsobras.cliente.PJuridica.PJuridicaDAO;
import cpsobras.cliente.PJuridica.PJuridicaDAOImp;
import cpsobras.cronograma_etapa.Cronograma_EtapaDAO;
import cpsobras.cronograma_etapa.Cronograma_EtapaDAOImp;
import cpsobras.fornecedor.FornecedorDAO;
import cpsobras.fornecedor.FornecedorDAOImp;
import cpsobras.funcionario.FuncionarioDAO;
import cpsobras.funcionario.FuncionarioDAOImp;
import cpsobras.material.MaterialDAO;
import cpsobras.material.MaterialDAOImp;
import cpsobras.movimento.MovimentoDAO;
import cpsobras.movimento.MovimentoDAOImp;
import cpsobras.movimento_item.MovimentoItemDAO;
import cpsobras.movimento_item.MovimentoItemDAOImp;
import cpsobras.obra.ObrasDAO;
import cpsobras.obra.ObrasDAOImp;
import cpsobras.servico.ServicoDAO;
import cpsobras.servico.ServicoDAOImp;
import cpsobras.usuario.UsuarioDAO;
import cpsobras.usuario.UsuarioDAOImp;

public class DAOFactory {

	public static UsuarioDAO criarUsuarioDAO(){
		UsuarioDAOImp usuarioDAO = new UsuarioDAOImp();
		usuarioDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return usuarioDAO;
	}
	
	public static ObrasDAO criarObrasDAO(){
		ObrasDAOImp obrasDAO = new ObrasDAOImp();
		obrasDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return obrasDAO;
	}
	//Cargo
	public static CargoDAO criarCargoDAO(){
		CargoDAOImp cargoDAO = new CargoDAOImp();
		cargoDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return cargoDAO;
	}
	
	public static PFisicaDAO criarPFisicaDAO(){
		PFisicaDAOImp pfisicaDAO = new PFisicaDAOImp();
		pfisicaDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return pfisicaDAO;
	}

	public static PJuridicaDAO criarPJuridicaDAO(){
		PJuridicaDAOImp pjuridicaDAO = new PJuridicaDAOImp();
		pjuridicaDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return pjuridicaDAO;
	}

	public static FuncionarioDAO criarFuncionarioDAO(){
		FuncionarioDAOImp funcionarioDAO = new FuncionarioDAOImp();
		funcionarioDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return funcionarioDAO;
	}

	public static FornecedorDAO criarFornecedorDAO(){
		FornecedorDAOImp fornecedorDAO = new FornecedorDAOImp();
		fornecedorDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return fornecedorDAO;
	}

	public static MaterialDAO criarMaterialDAO(){
		MaterialDAOImp materialDAO = new MaterialDAOImp();
		materialDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return materialDAO;
	}
	public static ServicoDAO criarServicoDAO(){
		ServicoDAOImp servicoDAO = new ServicoDAOImp();
		servicoDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return servicoDAO;
	}
	
	public static Cronograma_EtapaDAO criarCronograma_EtapaDAO(){
		Cronograma_EtapaDAOImp cronograma_etapaDAO = new Cronograma_EtapaDAOImp();
		cronograma_etapaDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return cronograma_etapaDAO;
	}

	public static MovimentoDAO criarMovimentoDAO(){
		MovimentoDAOImp movimentoDAO = new MovimentoDAOImp();
		movimentoDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return movimentoDAO;
	}

	public static MovimentoItemDAO criarMovimentoItemDAO(){
		MovimentoItemDAOImp movimentoItemDAO = new MovimentoItemDAOImp();
		movimentoItemDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
		return movimentoItemDAO;
	}
	
}
